Basic computer based communications systems rely on a network management entity to route and control the flow of traffic through the system. In some cases nodes within the network have resources which determine a route from the node to the next element in the connection. The routing of the communications is based on the physical topology of the network and the policies determined by the network operator. In packet-based networks, each packet contains a routing information (the destination address in the case of IP networks), and the router matches this routing information against is policy and routing topology information to make the forwarding decision.
Content switches are currently being developed for web based communications over the Internet or other IP-based communication networks. These switches are known as being “content aware” and have the ability to recognize the content being requested, where it is located, and how to route individual content requests to the server best able to manage them. Basically, a content switch is a router that makes routing or quality of service decisions based on the content of the packets in the traffic flow rather than on pure routing information. For example, a web switch, a content switch, is capable of understanding the HTTP traffic and redirects it to the appropriate web server. A classic application of such a system is a server farm, as shown in FIG. 1, and will be used as a reference throughout this application.
Web switches presently available are used to make switching decisions based on HTTP traffic. There is a trend, however, to use extensible mark up language (XML) over HTTP based protocols to provide web based applications such as Microsofts.Net framework. Simple object access protocol (SOAP) is an example of an XML over HTTP based protocol.
Active networks, in which the user has the ability to dynamically define routing policies, are also under development. A context type switch may be used in an active network wherein the full routing policy is provided along with the packets sent by the user. Generally, network providers are reluctant to embrace the active network framework in that the architecture lends itself to misuse by untrusted users.
The present invention addresses some of the problems associated with content switches. Current web switches have many drawbacks, one being that they are too dependent on the evolution of the protocol itself. For example, when the standard moved from HTTP1.0 to HTTP1.1 most content switches had to be replaced because they were examining only the first packets of the stream. Even in the context of a fully programmable web switch the evolution of the protocol has to be compensated by a programming effort which might be significant. As a more general note the content switch needs to support all of the applications switched on HTTP, H.323, RTP, etc. This is shown in FIG. 2 which shows a typical protocol stack for a web switch. As mentioned earlier, web based applications are now based on XML making the classification at the HTTP layer insufficiently granular. For the sake of the present application the invention unifies the definition of the application under a common umbrella, for example XML.
Another problem with content switches is that the switching policy has to be defined by the application provider. This means, in practice, that web switches are essentially controlled by the application provider. For active networks, the great flexibility that they allow is often regarded with some caution because of the trust issue that is implied by letting a user specify his own policies.
The present invention allows for a clear separation of the switching action and the switching policy.